package com.lkd.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lkd.contract.TaskCompleteContract;
import com.lkd.entity.VendingMachineEntity;
import com.lkd.http.controller.vo.CreateVMReq;
import com.lkd.vo.Pager;
import com.lkd.vo.VmVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author LKD
 */
public interface VendingMachineService extends IService<VendingMachineEntity> {
 /**
     * 根据状态获取售货机列表
     * @param status
     * @return
     */
    Pager<VendingMachineEntity> search(Long pageIndex, Long pageSize, Integer status, String innerCode);

/**
     * 根据编号查询售货机
     * @param innerCode
     * @return
     */
    VmVO findByInnerCode(String innerCode);

    /**
     * 根据clientId 查询售货机
     * @param clientId
     * @return
     */
    VendingMachineEntity findByClientId(String clientId);

    /**
     * 根据机器状态获取机器编号列表
     * @param isRunning
     * @param pageIndex
     * @param pageSize
     * @return
     */
    Pager<String> getAllInnerCodes(boolean isRunning, long pageIndex, long pageSize);

    /**
     * 更新设备状态(在线离线)
     * @param innerCode 售货机编号
     * @param status 状态
     */
    void updateOnLineStatus(String innerCode, Boolean status);

    /**
     * 售货机新增
     * @param vmReq
     * @return
     */
    Boolean saveVm(CreateVMReq vmReq);

    /**
     * 修改售货机状态
     * @return
     */
    Boolean updateVmStatus(TaskCompleteContract contract);

    /**
     * 定时处理补货
     */
    void doSupply(int total,int index);

}
